table of contents
GETGROUPS(2) | Podręcznik programisty Linuksa | GETGROUPS(2) |
NAZWA¶
getgroups, setgroups - pobiera/ustawia listę identyfikatorów grup dodatkowych
SKŁADNIA¶
#include <sys/types.h>
#include <unistd.h>
int getgroups(int size, gid_t list[]);
#include <grp.h>
int setgroups(size_t size, const gid_t *list);
OPIS¶
- getgroups
- Zwraca w list maksymalnie size dodatkowych ID grup. Nie jest określone, czy efektywny ID grupy procesu wywołującego będzie znajdować się na zwróconej liście. Tak więc, aplikacja powinna wywołać również getegid(2) i dodać lub usunąć otrzymaną wartość.) Jeśli size jest równe zero, to list nie jest modyfikowane, lecz zwracana jest ogólna liczba dodatkowych grup procesu.
- setgroups
- Ustawia dodatkowe grupy procesu. Jedynie superużytkownik może tego dokonać.
WARTOŚĆ ZWRACANA¶
BŁĘDY¶
UWAGI¶
Proces może posiadać maksymalnie co najmniej NGROUPS_MAX grup dodatkowych oprócz efektywnego ID grupy. Zbiór grup dodatkowych jest dziedziczony po procesie rodzicielskim i może zostać zmieniony za pomocą setgroups. Maksymalna liczba grup dodatkowych może być odczytana za pomocą sysconf(3):
long ngroups_max;
ngroups_max = sysconf(_SC_NGROUPS_MAX);
Maksymalna zwracana przez getgroups wartość nie może być większa niż powiększona o jeden wartość otrzymana w powyższy sposób.
Prototyp dla setgroups jest dostępny jedynie, gdy zdefiniowane jest _BSD_SOURCE (bezpośrednio, albo pośrednio - nie definiując _POSIX_SOURCE czy kompilując z włączoną flagą -ansi).
ZGODNE Z¶
SVr4, SVID (tylko wydanie 4; wywołań tych nie było w SVr3), X/OPEN, 4.3BSD. Funkcja getgroups istnieje w POSIX.1. Ponieważ setgroups wymaga przywilejów, nie jest opisana w POSIX.1.
ZOBACZ TAKŻE¶
1997-12-10 | Linux 2.0.32 |